Cloud computing may be the on-demand availability of computer system resources, especially data storage and computing power, without direct active management by the user. The computer system resources may be data centers available to many users over the Internet. They may have functions distributed over multiple locations from central servers or designate edge servers.
Cloud computing environments may provide computing services for storing, processing, and managing data over a networked environment. Cloud computing environments, such as an AMAZON Web Services (AWS) environment available from Amazon Inc. of Seattle, Wash., may include hundreds of thousands of cloud computing resources. Cloud computing resources may include servers, data storage repositories, computing services, communication platforms, virtual development environments, software, and/or the like within a cloud computing environment. Various cloud computing accounts utilizing the cloud computing resources may need the current configuration of the cloud computing resources at all times. The configuration of the cloud computing resources may include server names, database names, security settings, the location of the cloud computing resources, network address of the cloud computing resources, and/or the like.
To determine the current configuration of the cloud computing resources, cloud computing accounts have conventionally had to poll the cloud computing resources individually. Polling-based models may create duplicative efforts to retrieve the same data from the cloud computing resources. Exhaustive Application Program Interface (API) queries may result in a rate limit or throttling issues. Systems performing their normal operations on or with the respective cloud computing resources may be denied or delayed. This is because polling just to retrieve the current configuration of these various cloud computing resources can starve API access of these systems performing their operations using the cloud computing resources.
Furthermore, these cloud computing resources are related to each other. For example, a cloud computing resource may interface with another cloud computing resource. Alternatively, a cloud computing resource may govern the rules of data transmission of another cloud computing resource. Navigating the relationships between cloud computing resources is inefficient, time-consuming, and cumbersome. Conventionally, the relationships between cloud computing resources are stored in a flat structure. The flat structure does not define relationships between the cloud computing resources. To define a hierarchical relationship between the cloud computing resources, this structure forces a user to execute an API call for each cloud computing resource and then infer further relationships between the cloud computing resources based on the results of the API calls. This compounds the inefficiencies in retrieving data.
Methods and systems are needed to observe the current and historical configuration of computing resources in a way that is more efficient and does not starve API access to these cloud computing resources from other processes.
The drawing in which an element first appears is typically indicated by the leftmost digit or digits in the corresponding reference number. In the drawings, like reference numbers may indicate identical or functionally similar elements.